package qgs.zisu.javaconcurrency.javaconcurrency.chapter11_ExitCapture.stackTraceChain;

import java.util.Arrays;
import java.util.Optional;

/**
 * @Author: 蔡翔
 * @Date: 2019/10/20 13:38
 * @Version 1.0
 */
public class Test2 {
    public void test(){
        //在某个地方获取堆栈，那么这个堆栈会把 从源头到这里的调用，都存到这个堆栈。
        Arrays.asList(Thread.currentThread().getStackTrace()).stream()
                .filter(s->!s.isNativeMethod())  //filter 会返回一些条件是 !s.isNativeMethod() （注意这里返回的boolen类型）
                .forEach(e-> Optional.of(e.getClassName()+":"+e.getMethodName()+":"+e.getLineNumber())
                        .ifPresent(System.out::println)
                );
    }
}
